import bianliang from "./bianliang.js";

/**
 * 创建一个爆炸的动画
 * 敌机在哪里死亡，爆炸就在哪里产生
 */

class Boom {
	//type指的是敌机类型
	constructor(x, y, type) {
	    this.x = x;
		this.y = y;
		this.type = type;
		if (this. type == 0) {
			//小飞机爆炸	10~13这几张图片
			//this.imgs = [bianliang.resObj[10], bianliang.resObj[11], bianliang.resObj[12], bianliang.resObj[13]];
			this.imgs = bianliang.resObj.slice(10, 14)//截取从第10个开始到第14个(不包含14)
		} else if (this. type == 1) {
			//中飞机爆炸	14~17这几张图片
			//this.imgs = [bianliang.resObj[14], bianliang.resObj[15], bianliang.resObj[16], bianliang.resObj[17]];
			this.imgs = bianliang.resObj.slice(14, 18)
		}else if (this. type == 2) {
			//大飞机爆炸	18~23这几张图片
			//this.imgs = [bianliang.resObj[18], bianliang.resObj[19], bianliang.resObj[20], bianliang.resObj[21], bianliang.resObj[22], bianliang.resObj[23]];
			this.imgs = bianliang.resObj.slice(18, 24);
		} else if (this. type == 3) {
			//自己的飞机爆炸	24~27这几张图片
			this.imgs = bianliang.resObj.slice(24, 28);
		}
		this.width = this.imgs[0].width;
		this.height = this.imgs[0].height;
		this.isPlay = false;	//爆炸动画还没开始播放
	}
	
	draw(ctx) {
		//动画自己循环调用就行了，不需要外面调用
		//爆炸动画应该是多张图片在轮流切换
		if (this.isPlay == false) {
			this.isPlay = true;
			var count = 0;
			var id = setInterval(function() {
				ctx.drawImage(this.imgs[count], this.x, this.y, this.width, this.height);
				count++;
				if (count >= this.imgs.length) {
					//说明所有的图片都画完了，这时候清除这个定时器
					clearInterval(id);
					//当爆炸完成以后，将自己移除掉
					var index = bianliang.boomList.indexOf(this);
					bianliang.boomList.splice(index, 1);
				}
			//当在定时器里面使用了this关键字以后，要加上以下代码
			}.bind(this), 50);
		}
	}
}

export default Boom;